//---------------------------------------------------------------------------

#ifndef TExpPH1H
#define TExpPH1H

#include "GrvPH1.h"

const AnsiString CodigoPais = "1058";

class TExpPH: public TObject
{
 protected:
  TGrvPH * GPH;
  PHDataSource * DSFat;
  PHDataSource * DSDetFat;
  PHDataSource * DSDetRet;
  PHDataSource * DSCli;
  PHDataSource * DSServ;
  PHDataSource * DSRetServ;
  PHDataSource * DSRet;
  PHDataSource * DSCntPg;
  PHDataSource * DSForn;
  struct FAT * SrcFat;
  struct DETFAT * SrcDetFat;
  struct DETRET * SrcDetRet;
  struct CLI * SrcCli;
  struct SERV * SrcServ;
  struct RETSERV * SrcRetServ;
  struct RET * SrcRet;
  struct CNTPG * SrcCntPg;
  struct FORN * SrcForn;
  TStringList * TSRetImposto;
  AnsiString Classe;
  AnsiString Arquivo;
  int Mes;
  int Ano;
  unsigned long MesAno;
  int MesAnterior;
  int AnoAnterior;
  unsigned long MesAnoAnterior;
  short TipoRegistro;
  int CFOP;
  int CFOPForaEstado;
  int Historico;
  AnsiString Municipio;
  AnsiString Estado;
  double ValorContabil;
  double AliqISS;
  AnsiString Atividade;
  AnsiString Serie;
  int CST;
  int ExecutaFM;
  int ISSFixo;
  bool SomenteBaseISS;
  TStringList *TSMensagens;
  void __fastcall SetListaImposto(TStringList *Lista, AnsiString Imposto);
  AnsiString __fastcall GetClasse(void);
  AnsiString __fastcall GetArquivo(void);
  int __fastcall GetMes(void);
  int __fastcall GetAno(void);
  unsigned long __fastcall GetMesAno(void);
  short __fastcall GetTipoRegistro(void);
  int __fastcall GetCFOP(void);
  int __fastcall GetCFOPForaEstado(void);
  int __fastcall GetHistorico(void);
  AnsiString __fastcall GetMunicipio(void);
  AnsiString __fastcall GetEstado(void);
  void __fastcall SetValorContabil(void);
  double __fastcall GetValorContabil(void);
  AnsiString __fastcall GetSerie(void);
  double __fastcall GetAliqISS(void);
  int __fastcall GetIssFixo(void);
  AnsiString __fastcall GetAtividade(void);
  int __fastcall GetCST(void);
  int __fastcall GetExecucaoFM(void);
  double __fastcall GetAliqImposto(int Servico, int Tipo);
  AnsiString __fastcall GetEspecie(short ModeloDoc);
  AnsiString __fastcall GetModeloDocumento(short ModeloDoc);
  void __fastcall SetReg10(void);
  void __fastcall SetReg20S(UINT Data);
  void __fastcall SetReg20E(void);
  void __fastcall SetReg21S(void);
  void __fastcall SetReg21E(void);
  void __fastcall SetReg22S(void);
  void __fastcall SetReg22E(void);
  void __fastcall SetReg23S(void);
  void __fastcall SetReg23E(void);
  void __fastcall SetReg26(void);
  void __fastcall SetReg33(void);
  void __fastcall SetReg35(void);
  void __fastcall SetReg37(double Valor);
  void __fastcall virtual ProcessaRegistros(TObject *Sender);
 public:
  __fastcall TExpPH(void);
  __fastcall ~TExpPH(void);
  void __fastcall SetDados(void);
  void __fastcall SetArquivo(AnsiString Arquivo);
  void __fastcall SetMes(int Mes);
  void __fastcall SetAno(int Ano);
  void __fastcall SetMesAno(unsigned long Valor);
  void __fastcall SetTipoRegistro(short TipoRegistro);
  void __fastcall SetCFOP(int CFOP);
  void __fastcall SetCFOPForaEstado(int CFOP);
  void __fastcall SetHistorico(int Historico);
  void __fastcall SetMunicipio(AnsiString Municipio);
  void __fastcall SetEstado(AnsiString Valor);
  void __fastcall SetAliqISS(double Valor);
  void __fastcall SetIssFixo(int Valor);
  void __fastcall SetAtividade(AnsiString Valor);
  void __fastcall SetCST(int Valor);
  void __fastcall SetExecucaoFM(int Valor);
  void __fastcall SetMensagens(TStringList *Mensagens);
  void __fastcall SetSerie(AnsiString Value);
  void __fastcall ExecutaProcessamento(void);

};
//---------------------------------------------------------------------------
#endif
